With each new technology generation, the power consumption of computer central processing units (CPU's) increases. The increasing amount of power consumption with each new technology generation, however, increases demand for power from the computer power source. Increased power demand is particularly salient for mobile computers having a battery power source, such as laptop computers or Personal Data Assistants (PDA's) and for other computers running on a power source of limited capacity or duration. Thus, for these situations it is desirable to conserve energy to extend the amount of run time available on a single battery charge or to tailor computer energy consumption to a given limited power source.
Efforts to conserve energy and extend run time from the single battery charge, include programming the operating system (OS) of a CPU to turn off any peripheral devices that are idle or are presently not being used. Although this methodology may extend the total run time of a computer, users are given no indication of the remaining battery life. In order to provide some indication of how much run time a user can expect from a single battery charge, a battery run down test running various applications may be performed to give an expected run time estimate. Industry standard battery run down tests, such as the Ziff Davis Battery Mark, were developed to include performance of a mix of business, graphics and Internet applications during battery run down to arrive at a “typical usage figure” for the run time. Such figures, however, are somewhat inaccurate because the particular battery run down test may not include applications that are representative of a particular user, and processing loads inevitably vary from person to person.
Most notebook computers now include intelligent batteries that can keep track of their remaining capacity and provide an available run time based on a current consumption rate, which can be communicated to the OS of the CPU. Such information, however, is of little value to the computer user since the remaining capacity and available run time vary continually, depending on the amount of work being done by the CPU and peripheral devices. For example, a user may be given an indication that one hour of run time is available based on a current usage pattern (e.g., using a word processing application). If the user then decides to view a DVD or use a graphical application, however, the amount of remaining run time will decrease at a much higher rate. The one hour indication would then have been incorrect because other processing work loads have subsequently been added to the CPU and peripheral devices.
It is known that the power of a CPU is directly related to the product of the capacitance, frequency and square of the voltage of the CPU. Hence, a reduction in the frequency yields a direct power reduction, while a reduction in the voltage yields an exponential power reduction. Accordingly, efforts to conserve energy and increase run time have included programming the OS to decrease the clock frequency of the CPU and the voltage at which the CPU operates when being run by a battery, for example. An example of such programming is Intel's SpeedStep™ technology, which reduces the frequency and operating voltage of the processor power rail, as well as dimming the computer screen when the computer is operating on battery power. Typically programs such as SpeedStep™ perform a simple binary operation where a high-low signal (e.g., a Geyser high-low signal) asserts frequency and voltage reduction to predetermined values when operating on battery power and operation at full frequency and higher voltage when the computer is connected to an external power source. These programs, however, do not provide a user information concerning remaining run time or the ability to ensure that the remaining battery capacity is sufficient to meet a user's need to run a particular application for a given period of time.